package com.intretech.umsin.system.service.impl;

import com.intretech.umsin.common.service.AbstractParseDictServive;
import com.intretech.umsin.common.entity.DictModel;
import com.intretech.umsin.system.service.SysDictItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @version V1.0
 * @ClassName: ParseDictServiceCustomImpl
 * @Description: 功能描述 处理字典转换/码名映射 自定义业务实现
 * @author: 李启联
 * @date: 2022-6-9 11:16
 * @Copyright: Copyright (c) 2022
 */
@Service
public class ParseDictServiceCustomImpl extends AbstractParseDictServive {

    @Autowired
    private SysDictItemService sysDictItemService;

    /**
     * 通过字典编码集合列表一次性把单字典内容全部获取出字典内容(该抽象方法由用户去实现)
     *
     * @param dictCodes 字典编码集合
     * @return
     */
    @Override
    protected List<DictModel> queryManyDictByDictCodes(List<String> dictCodes) {
        return sysDictItemService.queryManyDictByDictCodes(dictCodes);
    }

    /**
     * 通过查询指定table的 text code key 获取字典值
     * 查询字典表的数据 支持设置过滤条件、设置存储值作为in查询条件
     *
     * @param dictTable 表名称 （或表名称 + " where k = 'v'"）
     * @param text      名称字段
     * @param code      码字段
     * @param values    码名映射中“码”的值集合 支持批量查询
     * @return
     */
    @Override
    protected List<DictModel> queryTableDictByKeys(String dictTable, String text, String code, List<String> values) {
        return sysDictItemService.queryTableDictByKeys(dictTable,text,code,values);
    }
}